<?php

class SchoolMarketingEditPanel extends QPanel {
    // Local instance of the SchoolMarketingMetaControl
    protected $mctSchoolMarketing;

    // Controls for SchoolMarketing's Data Fields
    public $lstEuserObject;
    
    public $lstSchoolType;
    public $lstEduSystem;
    public $lstSegment;
    public $lstSector;
    public $lstOrderType;
    public $txtOrderNote;
    public $txtCreateBy;
    public $calCreateDate;
    public $txtUpdateBy;
    public $calUpdateDate;

    

    // Other ListBoxes (if applicable) via Unique ReverseReferences and ManyToMany References

    // Other Controls
    public $btnSave;
    public $btnDelete;
    public $btnCancel;

    // Callback
    protected $strClosePanelMethod;

    public function __construct($objParentObject, $strClosePanelMethod , $strControlId = null) {
        // Call the Parent
        try {
            parent::__construct($objParentObject, $strControlId);
        } catch (QCallerException $objExc) {
            $objExc->IncrementOffset();
            throw $objExc;
        }
        //$intArrayId = SchoolMarketing::LoadArrayBySchoolId( $_SESSION['OrgId'] );

        // Setup Callback and Template
        $this->strTemplate = __DOCROOT__ . __MARKETING__ . '/tpl/SchoolMarketingEditPanel.tpl.php';

        $this->strClosePanelMethod = $strClosePanelMethod;
        $intId=null;
        //Seasons
        if ( isset( $_SESSION['Org'] ) ){
            $orgArrayId =SchoolMarketing::LoadArrayBySchoolId($_SESSION['Org']->Id);
            if (! empty ($orgArrayId) )
                $intId = $orgArrayId[0]->Id;

        }
        $this->mctSchoolMarketing = SchoolMarketingMetaControl::Create($this, $intId);

        // Call MetaControl's methods to create qcontrols based on SchoolMarketing's data fields



        
        $this->lstSchoolType = $this->mctSchoolMarketing->lstSchoolType_Create();
        $this->lstEduSystem = $this->mctSchoolMarketing->lstEduSystem_Create();
        $this->lstSegment = $this->mctSchoolMarketing->lstSegment_Create();
        $this->lstSector = $this->mctSchoolMarketing->lstSector_Create();
        $this->lstOrderType = $this->mctSchoolMarketing->lstOrderType_Create();
        $this->txtOrderNote = $this->mctSchoolMarketing->txtOrderNote_Create();


        // Create Buttons and Actions on this Form
        $this->btnSave = new QButton($this);
        $this->btnSave->Text = QApplication::Translate('Save');
        $this->btnSave->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnSave_Click'));
        $this->btnSave->CausesValidation = $this;

        $this->btnCancel = new QButton($this);
        $this->btnCancel->Text = QApplication::Translate('Cancel');
        $this->btnCancel->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnCancel_Click'));

        $this->btnDelete = new QButton($this);
        $this->btnDelete->Text = QApplication::Translate('Delete');
        $this->btnDelete->AddAction(new QClickEvent(), new QConfirmAction(QApplication::Translate('Are you SURE you want to DELETE this') . ' ' . QApplication::Translate('SchoolMarketing') . '?'));
        $this->btnDelete->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnDelete_Click'));
        $this->btnDelete->Visible = $this->mctSchoolMarketing->EditMode;
    }

    // Control AjaxAction Event Handlers
    public function btnSave_Click($strFormId, $strControlId, $strParameter) {
        // Delegate "Save" processing to the SchoolMarketingMetaControl
        $this->mctSchoolMarketing->SaveSchoolMarketing();
        //$this->CloseSelf(true);
    }

    public function btnDelete_Click($strFormId, $strControlId, $strParameter) {
        // Delegate "Delete" processing to the SchoolMarketingMetaControl
        $this->mctSchoolMarketing->DeleteSchoolMarketing();
        $this->CloseSelf(true);
    }

    public function btnCancel_Click($strFormId, $strControlId, $strParameter) {
        $this->CloseSelf(false);
    }

    // Close Myself and Call ClosePanelMethod Callback
    protected function CloseSelf($blnChangesMade) {
        $strMethod = $this->strClosePanelMethod;
        $this->objForm->$strMethod($blnChangesMade);
    }


}
?>